import { swap, testSort } from "hy-algokit";

function selectSort(arr: number[]): number[] {
  const n = arr.length;

  for (let j = 0; j < n - 1; j++) {
    //外层循环作用：经过多少轮找到最小值
    let minIndex = j;
    for (let i = 1 + j; i < n; i++) {
      //内层循环作用：每次找到最小值
      if (arr[i] < arr[minIndex]) {
        minIndex = i;
      }
    }
    //具有不相等时候，才需要进行交换操作
    if (j !== minIndex) {
      swap(arr, j, minIndex);
    }
  }

  return arr;
}

testSort(selectSort);
